/**
 * @description: 公共组件
 */
import type { App, Component } from 'vue'
import BaseIcon from './BaseIcon.vue'
import SvgIcon from './SvgIcon.vue'

type Components = {
    [propName: string]: Component
}

// 组件列表
const components: Components = {
    BaseIcon,
    SvgIcon,
}
/**
 * @ClassName common
 * @Description 批量导出组件，用于注册全局组件
 * @Author xuyizhuo
 * @Date 2024/12/8 22:36
 */
export default {
    /**
     * 全局注册组件，用Vue变量名在webstorm可以识别到组件已经注册，用其他名称无法识别。暂不清楚具体原因
     * @param {App} Vue
     */
    install: (Vue: App) => {
        for (const componentName in components) {
            // 在app上进行扩展，app提供 component directive 函数
            // 如果要挂载原型 app.config.globalProperties 方式
            Vue.component(componentName, components[componentName])
        }
    },
}
